// 频道的store模块
const state = {
  channels: [], // 我的频道的数据
  allChannels: [] // 所有频道数据,所有频道返回的数据中不包含推荐
}
const mutations = {
  // 设置我的频道的数据
  setChannels(state, channels) {
    state.channels = channels
  },
  // 设置所有频道
  setAllChannels(state, allChannels) {
    state.allChannels = allChannels
  },
  // 点击可选频道追加我的频道数据
  addMyChannel(state, channel) {
    state.channels.push(channel)
  },
  // 移除我的频道的mutation
  removeChannel(state, i) {
    state.channels.splice(i, 1)
  }
}
// action中可以包含任何异步代码, 提交的是mutation, action不能直接变更转态的
const actions = {}
const getters = {
  // getters中定义可选频道
  optionalChannels(state) {
    // 全部频道过滤
    /*  const arr = state.allChannels.filter(item => {
      // 标志位是true
      let flag = true
      state.channels.forEach(channel => {
        if (item.id === channel.id) {
          flag = false
        }
      })
      // 收集flag为true的情况
      return flag === true
    })
    return arr */
    // 优化
    /* return state.allChannels.filter(item => {
      // 标志位是true
      let flag = true
      state.channels.forEach(channel => {
        if (item.id === channel.id) {
          flag = false
        }
      })
      // 收集flag为true的情况
      return flag
    }) */
    // 过滤所有频道 筛选可选频道   判断所有频道项的id是否有我的频道的id
    /* return state.allChannels.filter(item => {
      const i = state.channels.findIndex(channel => {
        return item.id === channel.id
      })
      console.log(i)
      if (i === -1) {
        return true
      } else {
        return false
      }
    }) */
    return state.allChannels.filter(item => state.channels.findIndex(channel => item.id === channel.id) === -1)
  }
}
export default {
  state,
  mutations,
  actions,
  getters,
  // 开启命名空间
  namespaced: true
}
